ДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВНЕ ОБЯЗАТЕЛЬНОВ РАЗРАБОТКЕ
Разработчику
Архитектору
Инженеру
Чек-лист самопроверки
- Что такое процесс выполнения программы?
- Какие ресурсы выделяются каждому процессу операционной системой?
- Что такое поток выполнения?
- Чем поток отличается от процесса?
- Почему потоки считаются «легковесными» по сравнению с процессами?
- Какие преимущества даёт многопоточность?
- Какие риски возникают при использовании нескольких потоков в одном процессе?
- Что такое гонка данных (race condition)?
- Приведите пример ситуации, в которой может возникнуть гонка данных.
- Какие механизмы синхронизации вы знаете?
- Что такое мьютекс и для чего он используется?
- Как работает захват и освобождение мьютекса?
- В чём разница между мьютексом и семафором?
- Что такое спинлок и когда его использование оправдано?
- Что такое атомарная операция?
- Почему атомарные операции не требуют явной блокировки?
- Что такое deadlock (взаимная блокировка)?
- Какие условия необходимы для возникновения deadlock?
- Как можно предотвратить deadlock?
- Что такое starvation (голодание) в контексте многопоточности?
- Что такое live-lock и чем он отличается от deadlock?
- Что такое конкурентность?
- Что такое параллелизм?
- Может ли система быть конкурентной, но не параллельной?
- Может ли система быть параллельной без конкурентности?
- Что такое очередь задач и по какому принципу она работает?
- Что означает FIFO в контексте очередей?
- Как очереди используются в многопоточных системах?
- Что такое сообщение в контексте межпроцессного взаимодействия?
- Чем сообщение отличается от события?
- Что такое событие (event) в программировании?
- Как работает событийно-ориентированная архитектура (EDA)?
- Что такое синхронное выполнение задач?
- Что такое асинхронное выполнение задач?
- Почему асинхронность особенно важна для IO-bound задач?
- Что такое блокирующий и неблокирующий режимы ввода-вывода?
- Что такое Event Loop и как он работает?
- Что такое callback (функция обратного вызова)?
- Что такое Callback Hell и почему он возникает?
- Что такое корутина?
- Как корутины отличаются от обычных функций?
- Что делают ключевые слова async и await?
- Какие современные технологии обеспечивают асинхронный обмен данными в вебе?
- Чем WebSocket отличается от обычного HTTP-запроса?
- Что такое Server-Sent Events (SSE)?
- В чём разница между SSE и WebSocket?
- Как Web Workers помогают в браузерной асинхронности?
- Что такое порты завершения (completion ports) и где они используются?
- Какие проблемы могут возникнуть при неправильном управлении потоками?
- Какие инструменты отладки помогают анализировать поведение многопоточных приложений?